iT邦幫忙

2

[OpenCV 學習筆記] 1. 如何使用 OpenCV 讀取圖片?

  • 分享至 

  • xImage
  •  

在使用 OpenCV 套件時,最重要的第一步就是讀取資料,而資料來源的格式可以是圖片(Image),影片串流(Video Stream)或是攝影機串流(Camera Stream),本文將簡單介紹如何使用 OpenCV 套件讀取圖片。


範例程式(Python):

import cv2

pic_location = '../images/yourpic.jpg' # 圖片位址
flag = cv2.IMREAD_GRAYSCALE # 要求讀取圖片的方式,IMREAD_GRAYSCALE 代表以 grayscale mode 讀取,也就是說讀出來的圖片顯示時會是灰階的

try:
    img = cv2.imread(pic_location, flag) # 若無填入 flag, 則會使用預設的 IMREAD_COLOR 
    print(f"img: {img}") # 將 img 打印出來,可以發現是 np array 格式 
    cv2.imshow('image', img) # 將讀取到的 img 展示在視窗上
    
    # 等待用戶按下任意鍵 關閉視窗
    if cv2.waitKey(0):
        print(f'監聽到用戶按下按下鍵盤')

    cv2.destroyAllWindows() # 關閉所有 OpenCV 建立的視窗

except Exception as ex:
    print(f"An unexpected error occurred: {ex}")

讀取結果如下:
https://ithelp.ithome.com.tw/upload/images/20260803/20182893oW2eBMp32l.png


Note:

  • 圖片位置'../images/yourpic.jpg' 字串中的..代表為當前目錄的上一目錄,如果 images 資料夾位於當前目錄底下,則使用 './images/yourpic.jpg' 字串讀取圖片,其中 . 代表當前目錄。
  • cv2.waitKey() 的用途為在指定的時間內等待用戶的案件鍵盤觸發,以毫秒為單位,例如 cv2.waitKey(10000) 則代表則在10秒內等待用戶的案件觸發,例如將上述程式碼中和 waitKey 相關的部分改成10000,
    if cv2.waitKey(10000):
        print(f'監聽到用戶按下按下鍵盤')

則10秒內沒按下鍵盤會自動執行下一行的 destroyAllWindows() 方法關掉視窗,10秒內按下的話則提前執行destroyAllWindows() 方法。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言